A peristent data structure is one in which we can make changes (such as inserting and removing elements) while still preseving the original data structure Of course, an easy way to do this is to create a new copy of the entire data structure every time we perform an operation that changes the data structure, but it is much more efficient to only make a copy of the smallest possible portion of the data structure.